;; Happy hacking, demo - Emacs ♥ you!

(-map (lambda (n) (* n n)) '(1 2 3 4))

(--map (* it it) '(1 2 3 4))

(defun square (n) (* n n))
(-map #'square '(1 2 3 4))

(-copy '(1 2 3 4))

(-map-when (lambda (n) (= (mod n 2) 0)) (lambda (n) (* n n)) '(1 2 3 4))
(-map-first (lambda (n) (= (mod n 2) 0)) (lambda (n) (* n n)) '(1 2 3 4))
(-map-last (lambda (n) (= (mod n 2) 0)) (lambda (n) (* n n)) '(1 2 3 4))

(-map-indexed (lambda (index item) index) '(1 2 3 4))

(-annotate (lambda (n) (* n n)) '(1 2 3 4))
